Members
Overall Objectives
Research Program
Software and Platforms
New Results
Bilateral Contracts and Grants with Industry
Partnerships and Cooperations
Dissemination
Bibliography
XML PDF e-pub
PDF e-Pub


Section: Software and Platforms

Pal-Gate

Participants : Rémi Barraquand, Amaury Nègre, Dominique Vaufreydaz [correspondant] .

Middleware, Distributed perceptual systems, Robotic Operating System (ROS), IPL PAL

A part of our efforts in the PAL project has been put toward developing a solution that would ease the integration of our multi-partners' software components. We refer to this solution as PALGate.

The design of PALGate results from the obvious observation that, within the PAL project, each partner must be considered as an ecosystem characterized, among other things, by 1) its software culture e.g. its curiosity and knowledge about software concepts, software architectures and design patterns, programatic languages, etc.; 2) its resources, e.g. its manpower, its possession or not of an experimental platform; 3) its competences and fields of research and expertise; 4) its habits e.g. its uses of a particular programming language, (c/c++, Java, Python) and computing platforms (OSx, Linux, Windows, Android, etc.), its adoption or not of a dedicated technology to interconnect software components (OSGi, OMiSCID, MPI, PVM, etc.); and 5) its particular needs and constraints e.g. requirement of a hard real-time system, mobility, etc.

For it to be widely accepted, PALGate is therefore designed to be ecologic and pragmatic. Ecologic in the sense that the solution does not perturb the ecology of each ecosystem (namely, if a partner is used to Java and OSGi, deploying PALGate will not affect this in any way nor engender an heavy effort to interface it.), pragmatic in the sense that setting up this solution did not require an heavy development effort, also because it was targetted to PAL and is taking as much as possible advantage of existing solutions.

For developing PALGate we introduced a novel concept: software gate. Unlike software components/services which can be instantiated, a software gate is only a concept, it is defined as an ecologic and hermetic interface between different ecosystems. A software gate is characterized by the subset of functionalities it exposes to other gates, where the functionalities it exposes are provided by the software components/services of its belonging ecosystem. A software gate is hermetic in the sense that only a selected subset of functionalities of an ecosystem are exposed but also because it propagates only filtered information exposed by other gates into its ecosystem. The last characteristic of a software gate is that it makes explicit to other gates the communication mechanisms it uses.

While a software gate is only conceptual, PALGate is an implementation of a gate oriented middleware. PALGate uses ROS to support the basic communication between gates. Within PALGate, each ecosystem is associated to only one software gate. Practically, PALGate 1) is a ROS stack containing gates definition 2) is a set of conventions (e.g. stack organization, package/node/topic/service names, namespaces, etc.) 3) it provides dedicated tools to ease the integration and its usage by partners. A software gate in PALGate is a ROS package containing definition of ROS types (i.e. msgs and srvs types), but also exposed ROS communication channels (i.e. topics and RPCs).

With this architecture each partner has to provide PALGate with a package containing the definition of its gate. Then in order a) to expose functionalities out of their ecosystem and b) to propagate information into their ecosystem, each partner must create ROS nodes. These ROS nodes let each partner interface their ecosystem through ROS topics and ROS services without having to change anything about their architecture. For instance if a partner is using Java and OSGi, it can create nodes in ROS Java that will expose/register functionalities through ROS services, publish/subscribe information using ROS topics.